Information Theory, Inference and Learning Algorithms Lecture 4
课程主页:http://www.inference.org.uk/mackay/itprnn/,http://www.inference.org.uk/itprnn_lectures/
课程书籍:https://book.douban.com/subject/1893050/
这次回顾第四讲,第四讲介绍了符号码。
备注:笔记参考了中文书籍。
符号码
定义
总体 $X$ 的(二进制) 符号码 $C$ 是从 $x$ 的取值范围 $\mathscr{H}_{x}=\left\{a_{1}, a_{2}, \cdots, a_{I}\right\}$到$\{0,1\}^{+}$的一个映射。$c(x)$ 表示相对于 $x$ 的码字 $, l(x)$ 表示它的长度, 即 $l_{i}=l\left(a_{i}\right)$。
拓展码$\boldsymbol{C}^{+}$ 是从 $\mathscr{H}_{X}^{+}$ 到 $\{0,1\}^{+}$的一个映射,定义如下:
可唯一译码
这里我们要求码字$C(X)$可唯一译码,即
易于译码
即方便解码,这里使用前缀码来解决这点。前缀码的任何一个码字不是另一个码字的前缀,不难看出前缀码满足唯一性。
压缩
对于总体$X$,符号码$C$的期望长度$L(C,X)$是
可以把这个量写为
其中$I=|\mathscr H_X|$
可唯一译码性的限制
Kraft不等式
对于任何定义在二元符号集$\{0,1\}$上的可唯一译码的码$C(X)$,其码长必须满足
其中$I=|\mathscr H_X|$。
证明:
定义
考虑
不难看出$\left(l_{i_{1}}+l_{i_{2}}+\cdots+l_{i_{N}}\right)$表示$\boldsymbol{x}=\boldsymbol{a}_{i_{1}} \boldsymbol{a}_{i_{2}} \cdots \boldsymbol{a}_{i_{n}}$的编码长度。
定义
$A_l$表示编码长度为$l$的字符串$x$的数量,那么
由唯一性可得
所以
如果$S>1$,那么上式对充分大的$N$必然不成立,所以
Kraft不等式和前缀码
已知一组码字长度满足Kraft不等式,那么就存在一个可唯一译码的前级码具有这样的码字长度。
证明:
考虑码字超市:
将码字长度长度从小到大排列,按此顺序选择码字,每次选择完之后将其右侧的码字删除即可得到前缀码。
完全性
如果一个可唯一译码的码,其Kraft不等式的等号成立,那么它叫做完全码。
最大压缩是多少?
我们希望最小化
下面证明其范围。
期望长度的下界
可唯一译码的码之期望长度 $L(C, X)$ 的下界是 $H(X)$
证明:
定义
那么
回顾Gibbs不等式
以及可唯一译码的码字满足的条件
那么
最优信源码长
只有码长等于香农信息量
时,期望长度才能最小化,并且等于$H(X)$
由码长定义的隐式概率
码长$\{l_i\}$定义了隐式概率$\{q_i\}$
期望长度的上界
存在前缀码$C$,使得
证明:
令
首先验证Kraft不等式来保证可唯译码的存在性:
最后带入定义可得
符号码的信源编码定理
对于一个总体$X$,存在前缀码$C$,其期望长度满足
最优的符号码信源编码:霍夫曼码
霍夫曼编码算法
- 从符号集中选取两个具有最小概率的符号。对这两个符号分配最长的码字,二者长度相同,只有最后一位数字不同。
- 将这两个符号合并成一个符号,并继续重复下去。
例子
考虑
算法过程如下:
最终得到码字